<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Fkb_Validate_DateOrderLogic
 *
 * @author Schorr
 */
class Fkb_Validate_DateOrderLogic extends Zend_Validate_Identical
{

    const DATE_INVALID = 'dateInvalid';

    protected $_messageTemplates = array(
	self::DATE_INVALID => "'%value% Uhr' liegt nicht hinter '%token% Uhr'"
    );

    public function isValid($value, $context = null)
    {

	$this->_setValue((string) $value);
	if (($context !== null) && isset($context) && array_key_exists($this->getToken(), $context))
	{
	    $token = $context[$this->getToken()];
	} else
	{
	    $token = $this->getToken();
	}

	if ($token === null)
	{
	    $this->_error(self::MISSING_TOKEN);
	    return false;
	}

	try
	{
	    $token = new Zend_Date($token);
	    $value = new Zend_Date($value);
	} catch (Exception $e)
	{
	    return false;
	}

	if ((($value === $token)) || ( ($value == $token)))
	{
	    //Für die Fehlermeldung von Bedeutung
	    $this->setToken($context[$this->getToken()]);
	    $this->_error(self::DATE_INVALID);
	    return false;
	}

	if (($token->isLater($value)))
	{
	    //Für die Fehlermeldung von Bedeutung
	    $this->setToken($context[$this->getToken()]);
	    $this->_error(self::DATE_INVALID);
	    return false;
	}

	return true;
    }

}

?>
